package com.darren.archive.service;

import com.darren.archive.model.SysUser;

import java.util.List;

public interface ISysUserService {


    /**
     * 保存用户信息
     * @param record 用户信息
     * @return 用户信息
     */
    SysUser save(SysUser record);

    /**
     * 批量新增用户信息，常用于导入
     * @param records  用户信息
     * @return  用户信息
     */
    List<SysUser> batchAdd(List<SysUser> records);

    /**
     * 通过主键id删除数据
     *
     * @param id  主键id
     * @return    受影响的数据的行数
     */
    Integer deleteById(Long id);


    /**
     * 通过用户账号删除数据
     *
     * @param userAccount  用户账号
     * @return    受影响的数据的行数
     */
    Integer deleteByUserAccount(String userAccount);


    /**
     * 根据主键id 获取用户信息
     * @param id 主键id
     * @return   用户信息
     */
    SysUser getByPrimaryKey(Long id);


    /**
     * 根据用户账号，获取用户信息
     * @param userAccount  用户账号
     * @return             用户信息
     */
    SysUser getByUserAccount(String userAccount);

    /**
     * 使用账号、手机号、邮箱和密码登陆
     * @param accountOrMobileOrEmail  账号、手机号、邮箱
     * @param password  用户密码
     * @return  用户信息
     */
    SysUser loginByAccountOrMobileOrEmailAndPassword(String accountOrMobileOrEmail,String password);


    /**
     * 根据用户部门、用户帐号、用户姓名、手机号、邮箱查询用户
     *
     * @param departmentId     用户部门
     * @param userAccount      用户帐号
     * @param userName         用户姓名
     * @param mobile           手机号
     * @param email            邮箱
     * @return                 用户信息
     */
    List<SysUser> getByConditions(Long departmentId,String userAccount,String userName,String mobile,String email);


}
